【Linuxコマンドの基本02】一行で書くプログラム ワンライナー (この動画で解説してあるコマンド:grep sort uniq awk tee ps)

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024

Комментарии • 16

  • @マサオホジッチ
    @マサオホジッチ Год назад

    企業の研修で行き詰まったのですがこの動画のほうがわかりやすくとても助かりました!

    • @Linux
      @Linux  Год назад

      コメント、ありがとうございます。 役立ってよかったです。

  • @rockwell7777
    @rockwell7777 Год назад +1

    いつも投稿楽しみにしてます😊

    • @Linux
      @Linux  Год назад

      ありがとうございます。 励みになります!

  • @fermion1103
    @fermion1103 Год назад +1

    7:56 1行だとなにが嬉しいのか
    アウトプットやログの解析が手軽にできる(専用ソフトウェアがなくても)
    という点も嬉しいところに挙げられるかもしれません
    ちょっとずつ条件を変えて、ディレクトリを切っている計算結果とかを(先頭@がgrepの条件とすると)
    grep "^@" */output | awk '{print $NF}'
    して、各ディレクトリの欲しい結果だけ抜き出すみたいなことはよくやっている気がします

    • @Linux
      @Linux  Год назад

      なるほど確かに解析でよく使いますね! ありがとうございます。(*ˊ˘ˋ*)

  • @otanoshimi4
    @otanoshimi4 Год назад +1

    良かったです。

    • @Linux
      @Linux  Год назад

      ありがとうございます😊

  • @雹寿院千代
    @雹寿院千代 Год назад +1

    ワンライナー知ら無かったです。
    是は便利なコマンドですね。
    是知ら無いので不便な事してた訳か。
    あ、$sudo apt-get install quitで何故かquitのコマンドがダウンロード出来ません。
    是のコマンドがパソコンに無いんですよね。
    因みにubuntu Linux 22.04.2LTSです。

    • @Linux
      @Linux  Год назад +1

      'exit' コマンドじゃダメですか? quit ってコマンドありましたっけ? bash のプロンプトを抜けるコマンドですかね?

    • @雹寿院千代
      @雹寿院千代 Год назад

      @@Linux さん。
      exitでターミナルは閉じますが、閉じずにプログラムを終わらせたいのでpuitを使いたいんですが、どうもLinuxにはこのコマンドは無い様ですね?
      代わりにcontrolキー&Zキーのショートカットでプログラムを終了してます。
      有難う御座います。

    • @Linux
      @Linux  Год назад +1

      プログラム終わらせるならctrl + c の方がいいですよ。 zだと一時停止してるだけなので。

    • @雹寿院千代
      @雹寿院千代 Год назад

      @@Linux さん。
      そうなんですね。
      有難う御座います。

  • @otanoshimi4
    @otanoshimi4 Год назад +1

    すいません。質問があるのですが、よろしいでしょうか?
    1.クライアントと、サーバーがあります。サーバーがLinuxです。
    2.クライアントからssh接続のコマンド指定で、サーバー側のスクリプトを起動。
    3.スクリプトは別のサードパーティー製CUI処理プログラムを起動。場合によっては複数のCUIプログラムを起動。
    4.パイプリダイレクトを使いクライアントからサーバーへデータを送る。
    5.サーバー側のスクリプトがデータを読み込み、解析して、必要なら加工して、CUI処理プログラムにデータをリダイレクトする。
    6.CUI処理プログラムの処理後データをリダイレクトで、スクリプトが受け取り、必要なら加工してクライアントにリダイレクトする。
    7. 4.から6.を繰り返す。
    8.クライアントが終了したくなったら、「quit
    」をリダイレクトで送信。
    9.処理プログラムは、予め「quit
    」受け取ると終了するように出来ているので、終了する。
    10.その後スクリプトも終了する。
    11.サーバーとのssh接続が切れて、クライアントのsshコマンドが終了する。
    みたいな事を計画しているのですが、可能でしょうか?
    Unix系の文化として、小さいプログラムを組み合わせて処理するみたいなのがあるようですが、それに沿うとこうなのかなと思って計画しています。

    • @Linux
      @Linux  Год назад

      お返事遅くなりました。 
      サーバー側で走っているCUIにどうやってコマンドを別のプロンプトから送るのかが気になりますが、それができるのであればできるはずです。
      >4.パイプリダイレクトを使いクライアントからサーバーへデータを送る。
      ここで、CUIを起動させつつコマンドを送るのならできるはずです。

    • @otanoshimi4
      @otanoshimi4 Год назад

      返信ありがとうございます。イメージとして次のような感じで、スクリプトの子プロセスとしてCUIプログラムを起動してパイプでデータの交信をやりたいと思っています。
      1.スクリプト内でexecでCUI子プロセスを起動し、スクリプトを次の行に進める。
      2.起動した子プロセスPIDを探し変数に保存する。
      3.子プロセスに送信する時は、/proc/[PID]/fd/に書き込む。
      4.子プロセスから読み込む時は、/proc/[PID]/fd/を読み込む。この時、データが無くてもスクリプトの次の行に進めるようにする。
      クライアントからのメッセージは、標準入力から普通に変数にいれて、echoで出力するみたいなのを考えています。
      標準入力から読み込みは、メッセージが無い時は、すぐにスクリプトの次の行にいくみたいなのが出来ればいいなと考えています。
      イメージなので出来るかどうかまだ判断が付きません。
       クライアント・サーバー間の通信は、あらかじめsshを交換鍵方式によりログインできるようにし、
      バッチファイルに、
      @ssh リモートアドレス "./script.sh"
      等と書いておけば、リモートのサーバー側スクリプトのファイルが終了するまでは、接続が保っていられる事は確認済みです。バッチファイルとクライアントの通信は無名パイプを使います。
      今はバッチファイルを子プロセスとして起動するプログラムの作成中なので、サーバー側スクリプトはまだ先の事なんです。
      ありがとうございました。